package cn.com.nes.site.service.crm.opportunity.bo;

import cn.com.nes.site.entity.em.UserTypeEnum;
import cn.com.nes.site.entity.em.crm.opportunity.OpportunityClassificationEnum;
import lombok.Data;

import java.util.List;

@Data
public class QueryOpportunityPageBO {

    /**
     * 客户UUID
     */
    private String customerUuid;

    /**
     * 客户姓名
     */
    private String customerName;

    /**
     * 商务项目分类
     */
    private OpportunityClassificationEnum opportunityClassificationEnum = OpportunityClassificationEnum.COMMON;

    /**
     * 该列表存储了与商机相关的分类标识符。
     * 每个字符串元素代表一个特定的商机分类，这些分类可能来自 {@link OpportunityClassificationEnum} 枚举中的键值，
     * 用于在系统中标识不同的商机类型。此字段可以为空或包含多个分类标识符，具体取决于业务需求和数据状态。
     */
    private List<String> opportunityClassifications;

    /**
     * 客户性质
     */
    private String customerNature;

    /**
     * 商机UUID
     */
    private String opportunityUuid;

    /**
     * 政府公共商务项目UUID
     */
    private String mainOpportunityUuid;

    /**
     * 是否查询关联数据，true-查询已关联数据，false-查询未关联数据
     */
    private Boolean relatedQuery;

    /**
     * 与政府商务项目关联的 零售商务项目或政府终端商务项目 的 项目UUID列表
     * 与当前商机相关的其他商机的UUID列表。
     * 该列表用于表示与当前查询或处理的商机有直接关联的多个商机的唯一标识符集合。
     */
    private List<String> beRelatedOpportunityUuids;

    /**
     * 用于存储需要排除的关联商机UUID列表。
     * 该列表中的每个字符串元素代表一个特定的商机唯一标识符，这些标识符将被排除在查询或处理的结果之外。
     * 此字段可以为空或包含多个UUID，具体取决于业务需求和数据状态。
     */
    private List<String> excludeRelatedOpportunityUuids;

    /**
     * 商机名称
     */
    private String opportunityName;

    /**
     * 商机阶段
     */
    private String opportunityStage;

    /**
     * 联系人电话
     */
    private String personInChargePhone;

    /**
     * 行政区划代码
     */
    private String areaCode;

    /**
     * 行政区划代码列表
     */
    private List<String> xzqhdms;

    /**
     * 商机地址
     */
    private String opportunityAddress;

    /**
     * 商机是否关联了客户 true-是，false-否
     */
    private Boolean relatedCustomer;

    /**
     * 商机负责人ID
     */
    private Long opportunityOwnerId;

    /**
     * 当前页码
     */
    private int pageid = 1;

    /**
     * 当前页条数
     */
    private int pagesize = 10;

    /**
     * 操作人ID
     */
    private Long operateUserId;

    /**
     * 操作人公司ID
     */
    private String operateUserCompanyId;

    /**
     * 操作人用户类型
     */
    private UserTypeEnum operateUserType;

    /**
     * 项目类型
     */
    private String opportunityType;

    // 扩展参数
    private List<String> opportunityIdList; // 商机id列表
}
